Such an optical pointing device of the prior art is known for example in U.S. Pat. No. 7,122,781 B2, filed in the name of the same Assignee, which is incorporated herein by reference. U.S. Pat. No. 7,122,781 B2 discloses a method and a device for motion detection in an optical pointing device, such as an optical computer mouse. Said optical pointing device is shown on FIG. 1.
Said optical pointing device comprises a photo-detector array 120 including a plurality of pixels arranged in rows and columns according a first axis X and a second axis Y. Said photo-detector array 120 is coupled to a motion detection processing circuit 100 for processing the signals outputted by the photo-detector array 120. A comparator array 115 is interposed between the motion detection processing circuit 100 and the photo-detector array 120. This comparator array 115 includes several bi-state comparator circuits each for comparing a first integrated voltage from the light intensity of a first pixel of array with a second integrated voltage from the light intensity of a second pixel of array and for outputting a resulting edge direction condition.
It should be noted that a distinction is made between edges according to a direction on a first axis X and a direction on a second axis Y. The first axis X extends with a positive direction from left to right, and the second axis Y extends with a positive direction from bottom to top. In particular, two distinct edge direction conditions are defined, such as a first edge condition, or positive edge, and a second edge condition, or negative edge. The positive edge is defined as a condition wherein the first integrated voltage from the light intensity of a first pixel is smaller than the second integrated voltage from the light intensity of a second pixel. Said second pixel is placed on the right of the first pixel according to the axis X and placed on the upper side of the first pixel according to the axis Y. The negative edge is defined as a condition wherein the first integrated voltage from the light intensity of the first pixel is greater than the second integrated voltage from the light intensity of the second pixel. Both compared pixels can be adjacent or non-adjacent.
The optical pointing device further comprises at least one light source 110 such as a LED, which produces radiation that impinges on a portion of a work surface S. Said work surface S may be a planar or non-planar surface, such as a surface over which the optical pointing device is moved, the surface of a ball of an optical trackball, or any other suitable surface that may provide an appropriate intensity pattern for detection by the photo-detector array 120. For this optical pointing device, a light source is not, strictly speaking, necessary and that ambient light reflected by said work surface S may directly be used.
The motion detection processing circuit 100 is further adapted to communicate in a bi-directional manner with an interface 150 that communicates in turn with a host system (not illustrated) over a bus 155. Cursor control signals, and eventually other signals related to the optical pointing device, are supplied to the host system over bus 155. The motion detection processing circuit 100 may also receive information, such as configuration signals, over bus 155 from the host system.
The motion detection processing circuit 100 is essentially designed to intermittently sample the pixel outputs of photo-detector array 120 in accordance with a defined sequence. The edge information of two successive samples is compared and a relative motion measurement is extracted by the motion detection processing circuit 100. The adequate cursor control signals are then derived from the relative motion measurement and transmitted to the host system via line interface 150.
According to U.S. Pat. No. 7,122,781 B2, it is disclosed a so-called “Peak/Null Motion Detection” algorithm. Each row and column of the photo-detector array 120 is further analysed to find specific inflection conditions or data as shown on FIG. 2 of a schematic illustration of edge inflection conditions or data, or peaks and nulls, derived from a sequence of edge direction conditions along a determined axis. A first inflection condition, defined by a “peak”, and a second inflection condition, defined by a “null” are determined in the direction of successive edges along a selected axis. This is performed in practice along X and Y axes. The first inflection condition, or peak, is defined as the succession, along a determined axis X or Y, of a positive edge followed by a negative edge. Similarly, the second inflection condition, or null, is defined as the succession, along the determined axis, of a negative edge followed by a positive edge.
In contrast to the above edge direction conditions, it will be appreciated that the edge inflection conditions do not appear everywhere. Strictly speaking, one should also consider that there exists a third inflection condition representative of the fact that there does not exist, at a selected location, any inflection in the direction of the edges. Furthermore it can depend on the contrast of the work surface, which can cause some problem of motion detection of such an optical pointing device.
As shown on FIG. 3, the basic principle for detecting motion is based on the above edge inflection data. FIG. 3 shows a particular situation for a single axis motion detection of a succession of ten successive edge direction conditions and extracted edge inflection conditions determined from two successive flashes from the light source. Said inflection conditions are derived from two successive light intensity patterns detected by the photo-detector array. This particular situation is typical of sub-pixel motion, which is the displacement of less than the pixel pitch between two successive flashes.
As shown in FIG. 3, three edge inflection conditions are detected, namely a peak between the second and third edge direction conditions, a null between the fourth and fifth edge direction conditions, and a peak between the seventh and eighth edge direction conditions. Following the second flash, one can see that only the null condition moved one unit to the right, which defines a sub-pixel motion. In addition to accumulators in the processing circuit 100 for tracking motion of edge inflection conditions, one additional accumulator per axis is provided for counting the total number of edge inflection conditions appearing on each axis, i.e. peaks and nulls together.
The accumulator associated to the tracking of motion of edge inflection conditions can be incremented. So the total number of peaks and nulls detected by accumulator associated for counting the total number of edge inflection conditions being in this case three. For motion detection along two axes, these steps are performed for each row of the array along axis X and each column of the array along axis Y, which is well known in this prior art.
A calculation method may consist in computing the motion values along axes X and Y directly, as summarized by the following analytical expressions:
                              X          DISPLACEMENT                =                                            (                                                N                                      PEAK                    -                    RIGHT                                                  +                                  N                                      NULL                    -                    RIGHT                                                              )                        -                          (                                                N                                      PEAK                    -                    LEFT                                                  +                                  N                                      NULL                    -                    LEFT                                                              )                                            (                                          N                XPEAK                            +                              N                XNULL                                      )                                              (        1        )                                          Y          DISPLACEMENT                =                                            (                                                N                                      PEAK                    -                    UP                                                  +                                  N                                      NULL                    -                    UP                                                              )                        -                          (                                                N                                      PEAK                    -                    DOWN                                                  +                                  N                                      NULL                    -                    DOWN                                                              )                                            (                                          N                YPEAK                            +                              N                YNULL                                      )                                              (        2        )            
This method requires a minimum of two accumulators per axis, one for tracking motion of edge inflection conditions with peaks and nulls still tracked independently, and another one for tracking the total number of edge inflection conditions detected along the selected axis. However the motion detection of the optical pointing device for implementing this method can be dependent on the contrast of the work surface and can lead to some mistakes if there is a low contrast on the work surface, which is a drawback.
To improve the motion detection, it can be provided to equip an optical pointing devices with a laser illuminated source, which is already known in the prior art. With such laser illumination, an optical pointing device can work on a much wider variety of surfaces. However the coherent nature of the illumination results in a received image that contains generally high spatial frequencies especially compared to viewing the same surface with a non-coherent LED illumination. This high frequency content leads to spatial aliasing due to beyond under-sampled in the spatial domain. This aliasing leads to several bad effects, such as loss of resolution or apparent “reverse” motion. One alternative to deal with the higher spatial frequency content is to create smaller pixels with higher spatial capability in the imager. However two major problems arise with smaller pixels that are a lower mouse-speed/acceleration capability and a lower sensitivity to light, i.e. less collection area in the pixel.
The U.S. Pat. No. 7,876,307 B2, filed in the name of the same Assignee and which is incorporated in its entirety herein by reference, for instance discloses a method for measuring relative motion between an illuminated portion of a work surface and an optical pointing device. Said optical pointing device comprises a coherent light source and a photo-detector array. The measuring method comprises the steps of illuminating under a determined gradient by a coherent light source, the surface portion at a determined flash rate, of detecting by the photo-detector array, speckled light intensity pattern of the illuminated portion of the surface for a first flash, of detecting a second speckled light intensity pattern of the illuminated portion of the surface for a second flash, of extracting motion features of two different types from the detected first and second speckled light intensity patterns, of keeping only pairs of neighbouring motion features including one motion feature of both different types, and of determining a measurement of the relative motion between the optical sensing device and the illuminated surface portion based on a comparison of kept motion features.
Although such a solution as disclosed in the U.S. Pat. No. 7,876,307 B2 presents several advantages in dealing with a coherent light source in an optical pointing device, since laser illumination has a very large spectral content, there is still a need to further and better control the quantity of data needed to determine an accurate measurement of relative motion between the optical pointing device and the illuminated surface portion. However some problems can occur based on the type of work surface for the optical computer mouse, even if a coherent light source is used for illuminating a portion of the work surface, which is a drawback.
By summarizing in an existing measuring method of such an optical pointing device, which is based on comparing non adjacent or adjacent pixel values or voltages, the illuminated surface image is converted into an array of binary edges as above-mentioned. Said edge array is used for the detection of peaks and nulls in a motion detection processing circuit of the optical pointing device, in order to be used for statistical movement measurement. The peaks and nulls are defined as transitions between positive and negative edges for the peaks and between negative and positive edges for the nulls.
The prior art measuring method works well on surfaces with sufficient contrast on which pixel voltage differences are sufficient to produce reliable positive or negative edges. However on some other types of work surfaces, the difference between two pixel voltages can be relatively small and binary edge detection is less reliable in particular with a presence of electronic or optical noise. So the location of detected peaks and nulls is highly variable and uncorrelated to actual movement of the optical pointing device. Furthermore the illumination gradient on the pixel array introduces fixed pattern of edges, which limits statistical movement detection.
The U.S. Pat. No. 7,839,381 B2 describes a solution to improve the detection of an optical pointing device in presence of noise. For that an adapted hysteresis is provided for the comparison of the two integrated pixel voltages through each comparator of the comparator array. Said hysteresis can also be adapted in function of the state in which the optical pointing device is. However even if the comparison is performed with the adapted hysteresis, said optical pointing device is not able to well operate on each work surface, which is a drawback.
One solution of this abovementioned problem would be to improve contrast on a given work surface by optical system design. However, optical system design must consider variety of surfaces with different and sometimes contradictory requirements. Consequently correct handling of low contrast work surfaces by the pixel array has to be considered for supporting large set of surfaces for operating accurately the optical computer mouse on such a low contrast work surface. The optical pointing device of the prior art cannot be efficiently used on a low contrast work surface.